namespace LanSunERP
{
    using System;
    using System.ServiceModel;
    using System.Windows.Forms;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Runtime.Serialization;
    using System.Collections;
    using System.Data;
    using System.Data.SqlClient;

    public class GoodsType : QueryCommand
    {
        public GoodsType() : base() { }
        public GoodsType(SqlCommand cmdSQL, DataTable dtRequest, string RequestJob)
            : base(cmdSQL, dtRequest, RequestJob) { }
        public SqlCommand BuildCommand()
        {

            switch (RequestJob.Substring(6, 10))
            {
                case "0000000000":
                    /*
                         case "GoodsType":
                            GoodsType m_GoodsType = new GoodsType(cmdSQL, dtRequest, RequestJob);
                            cmdSQL = m_GoodsType.BuildCommand();
                            break;
                    */
                    break;
                case "1000000000":
                    break;
                case "2000000001":
                case "4000000000":
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceID", dwRequest["InstanceID"].ToString()));
                    break;
                case "1000009598":  //DB_GoodsType_DELETE_BY_InstanceID
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceID", dwRequest["InstanceID"].ToString()));
                    break;
                case "1000009596":  //DB_GoodsType_INSERT
                    break;
                case "1000009595":  //DB_GoodsType_SELECT_ALL
                    break;
                case "1000009599":  //DB_GoodsType_SELECT_BY_InstanceID
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceID", dwRequest["InstanceID"].ToString()));
                    break;
                case "1000009597":  //DB_GoodsType_SELECT_LIKE
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    break;
                case "1000009594":  //DB_GoodsType_STRUCTURE
                    break;
                case "1000009593":  //DB_GoodsType_UPDATE
                    break;
                case "1000007886":  //IX_GoodsType
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    break;
                case "1000007888":  //IX_GoodsType_Key
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    break;
                case "1000007892":  //IX_GoodsType_LikeAny
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    break;
                case "1000007893":  //IX_GoodsType_SysID
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    break;
                case "1000007896":  //PK_GoodsType
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    break;
                case "1000007895":  //TX_GoodsType
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    break;
                case "2000000000":
                case "3000000001":
                case "3000000000":
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceID", dwRequest["InstanceID"].ToString()));
                    cmdSQL = BuildInstanceKey(cmdSQL, dwRequest);
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeID", dwRequest["GoodsTypeID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyCondition", dwRequest["KeyCondition"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyInstanceTable", dwRequest["KeyInstanceTable"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@LongDes", dwRequest["LongDes"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@ShortDes", dwRequest["ShortDes"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@PositionID", dwRequest["PositionID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@LastPositionID", dwRequest["LastPositionID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@SubStatus", dwRequest["SubStatus"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@Status", dwRequest["Status"].ToString()));
                    break;
            }
            return cmdSQL;

        }
        public override SqlCommand BuildInstanceKey(SqlCommand cmdSQL, DataRow dwTemp)
        {
            string InstanceKey = dwTemp["InstanceKey"].ToString().Trim();
            string SysID = dwTemp["SysID"].ToString().Trim();
            string GoodsTypeKey = dwTemp["GoodsTypeKey"].ToString().Trim();

            {
                if (SysID != "" && GoodsTypeKey != "")
                {
                    InstanceKey = SysID + "." + GoodsTypeKey;
                    dwTemp["InstanceKey"] = InstanceKey;
                    dwTemp.AcceptChanges();
                }
            }
            cmdSQL.Parameters.Add(new SqlParameter("@InstanceKey", dwRequest["InstanceKey"].ToString()));
            return base.BuildInstanceKey(cmdSQL, dwTemp);
        }
    }
    public class GoodsTypeQueryCond : QueryCommand
    {
        public GoodsTypeQueryCond() : base() { }
        public GoodsTypeQueryCond(SqlCommand cmdSQL, DataTable dtRequest, string RequestJob)
            : base(cmdSQL, dtRequest, RequestJob) { }

        public SqlCommand BuildCommand()
        {
            switch (RequestJob.Substring(6, 10))
            {
                case "0000000000": break;
                case "1000000000": break;
                case "1000000001": break;
                case "1000000002": break;
                case "2000000000":
                case "3000000000":
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceID", dwRequest["InstanceID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceKey", dwRequest["InstanceKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeID", dwRequest["GoodsTypeID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyCondition", dwRequest["KeyCondition"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyInstanceTable", dwRequest["KeyInstanceTable"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@LongDes", dwRequest["LongDes"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@ShortDes", dwRequest["ShortDes"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@PositionID", dwRequest["PositionID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@LastPositionID", dwRequest["LastPositionID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@SubStatus", dwRequest["SubStatus"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@Status", dwRequest["Status"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@FrstUser", dwRequest["FrstUser"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@FrstDate", dwRequest["FrstDate"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@LastUser", dwRequest["LastUser"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@LastDate", dwRequest["LastDate"].ToString()));

                    break;
                case "4000000000":
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceID", dwRequest["InstanceID"].ToString()));
                    break;
            }
            return cmdSQL;

        }

    }
}

